package com.work.vo.main;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.work.utils.BigDecimalSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.cache.DictBizCache;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * des
 *
 * @author ：dujianyu
 * @since ：Created in 2024/4/3 15:01
 */
@Data
public class TwoStockTallyVO {

    /** 来源货运船ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "ID",notes = "")
    private Long id ;

    /** 理货日期 */
    @ApiModelProperty(value = "理货日期")
    private LocalDate tallyDate;

    /** 时间段（班次） */
    @ApiModelProperty(name = "时间段（班次）",notes = "")
    private String timeSpace ;

    /** 时间段（班次） */
    @ApiModelProperty(name = "时间段（班次）",notes = "")
    private String timeSpaceName ;

    public String getTimeSpaceName() {
        if (Func.isNull(timeSpace)) {
            return "";
        }
        return DictBizCache.getValue("time_space", timeSpace);
    }

    /** 理货类型 */
    @ApiModelProperty(name = "理货类型",notes = "")
    private String tallyType ;

    @ApiModelProperty(value = "理货类型")
    private String tallyTypeName;

    public String getTallyTypeName() {
        if (Func.isNull(tallyType)) {
            return "";
        }
        return DictBizCache.getValue("tally_type", tallyType);
    }

    /** 作业活动 */
    @ApiModelProperty(name = "作业活动",notes = "")
    private String workActivity ;

    /** 作业活动名称 */
    @ApiModelProperty(name = "作业活动名称",notes = "")
    private String workActivityName ;

    /** 来源货运船ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "来源货运船ID",notes = "")
    private Long oriTransportShipId ;

    @ApiModelProperty(name = "来源货运船名",notes = "")
    private String oriShipNameZh ;

    /** 来源货运舱单ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "来源货运舱单ID",notes = "")
    private Long oriTransportBillId ;

    /** 来源理货舱单ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "来源理货舱单ID",notes = "")
    private Long oriTBillId ;

    @ApiModelProperty(name = "来源货运舱单货名",notes = "")
    private String oriCargoType ;

    @ApiModelProperty(name = "来源货运舱单货名",notes = "")
    private String oriCargoTypeName ;

    @ApiModelProperty(name = "来源货运航次",notes = "")
    private String oriVoyage ;

    @ApiModelProperty(name = "来源货运进出口",notes = "")
    private String oriIE ;

    @ApiModelProperty(name = "来源货运舱单号",notes = "")
    private String oriBillNo ;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "来源被影响场存ID",notes = "")
    private Long oriStorageId ;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "来源区域ID",notes = "")
    private Long oriStorageAreaId ;

    @ApiModelProperty(name = "来源区域",notes = "")
    private String oriStorageAreaName ;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "来源货场",notes = "")
    private Long oriStoragePositionId ;

    @ApiModelProperty(name = "来源货场",notes = "")
    private String oriStoragePositionName ;

    @ApiModelProperty(name = "来源货位",notes = "")
    private String oriSpot ;

    /** 来源理货包装（场存垛包装） */
    @ApiModelProperty(name = "来源理货包装（场存垛包装）",notes = "")
    private String oriPackageType ;

    /** 来源理货包装（场存垛包装） */
    @ApiModelProperty(name = "来源理货包装（场存垛包装）",notes = "")
    private String oriPackageTypeName ;

    /** 来源理货件数 */
    @ApiModelProperty(name = "来源理货件数",notes = "")
    private Integer oriPiece ;

    /** 来源理货吨数 */
    @JsonSerialize(using = BigDecimalSerializer.class)
    @ApiModelProperty(name = "来源理货吨数",notes = "")
    private BigDecimal oriTon ;

    /** 来源地图数据ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "来源地图数据ID",notes = "")
    private Long oriGoodsPositionId ;

    /** 来源区域code */
    @ApiModelProperty(name = "来源区域code",notes = "")
    private String oriAreaCode ;

    /** 去向货运船ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "去向货运船ID",notes = "")
    private Long toTransportShipId ;

    @ApiModelProperty(name = "来源货运船名",notes = "")
    private String toShipNameZh ;

    /** 去向货运舱单ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "去向货运舱单ID",notes = "")
    private Long toTransportBillId ;

    /** 去向理货舱单ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "去向理货舱单ID",notes = "")
    private Long toTBillId ;

    @ApiModelProperty(name = "去向货运舱单货名",notes = "")
    private String toCargoType ;

    @ApiModelProperty(name = "去向货运舱单货名",notes = "")
    private String toCargoTypeName ;

    @ApiModelProperty(name = "去向货运航次",notes = "")
    private String toVoyage ;

    @ApiModelProperty(name = "去向货运进出口",notes = "")
    private String toiIE ;

    @ApiModelProperty(name = "去向货运舱单号",notes = "")
    private String toBillNo ;

    /** 去向被影响场存ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "去向被影响场存ID",notes = "")
    private Long toStorageId ;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "去向区域ID",notes = "")
    private Long toStorageAreaId ;

    @ApiModelProperty(name = "去向区域",notes = "")
    private String toStorageAreaName ;

    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "去向货场",notes = "")
    private Long toStoragePositionId ;

    @ApiModelProperty(name = "去向货场",notes = "")
    private String toStoragePositionName ;

    @ApiModelProperty(name = "去向货位",notes = "")
    private String toSpot ;

    /** 去向理货包装 */
    @ApiModelProperty(name = "去向理货包装",notes = "")
    private String toPackageType ;

    /** 去向理货包装 */
    @ApiModelProperty(name = "去向理货包装",notes = "")
    private String toPackageTypeName ;

    /** 去向理货件数 */
    @ApiModelProperty(name = "去向理货件数",notes = "")
    private Integer toPiece ;

    /** 去向理货吨数 */
    @JsonSerialize(using = BigDecimalSerializer.class)
    @ApiModelProperty(name = "去向理货吨数",notes = "")
    private BigDecimal toTon ;

    /** 去向地图数据ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "去向地图数据ID",notes = "")
    private Long toGoodsPositionId ;

    /** 去向区域code */
    @ApiModelProperty(name = "去向区域code",notes = "")
    private String toAreaCode ;

    /** 备注 */
    @ApiModelProperty(name = "备注",notes = "")
    private String remark ;

    /** 保管员 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "保管员",notes = "")
    private Long keeper ;

    /** 保管员 */
    @ApiModelProperty(name = "保管员",notes = "")
    private String keeperName ;

    /** 苫盖 */
    @ApiModelProperty(name = "苫盖",notes = "")
    private String isCover ;

    /** 铺垫 */
    @ApiModelProperty(name = "铺垫",notes = "")
    private String isBedding ;

    /** 安全生产 */
    @ApiModelProperty(name = "安全生产",notes = "")
    private String isSafeProduction ;

    @ApiModelProperty(value = "航陆运")
    private String shipLand;

    @ApiModelProperty(value = "航陆运")
    private String shipLandName;

    public String getShipLandName() {
        if (Func.isNull(shipLand)) {
            return "";
        }
        return DictBizCache.getValue("ship_land", shipLand);
    }

    @ApiModelProperty(value = "作业过程")
    private String operationType;

    @ApiModelProperty(value = "作业过程")
    private String operationTypeName;

    /** 一级配工ID */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "一级配工ID",notes = "")
    private Long arrangeId ;

    /** 配工信息 */
    @ApiModelProperty(name = "配工信息",notes = "")
    private String arrangeInfo ;

    /** 货位 */
    @ApiModelProperty(name = "舱口",notes = "")
    private String hold ;

    /** 货位 */
    @ApiModelProperty(name = "舱口",notes = "")
    private String holdName ;

    /** 公司 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "公司",notes = "")
    private Long company ;

    /** 公司 */
    @ApiModelProperty(name = "公司",notes = "")
    private String companyName ;

    /** 队 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "队",notes = "")
    private Long team ;

    /** 队 */
    @ApiModelProperty(name = "队",notes = "")
    private String teamName ;

    /** 组 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "组",notes = "")
    private Long groups ;

    /** 组 */
    @ApiModelProperty(name = "组",notes = "")
    private String groupsName ;

    /** 队组全名 */
    @ApiModelProperty(name = "队组全名",notes = "")
    private String workerInfo ;

    /** 车数 */
    @ApiModelProperty(name = "车数",notes = "")
    private String cars ;

    /** 理货区域 */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(name = "理货区域",notes = "")
    private Long areaId ;

    /** 是否退关 */
    @ApiModelProperty(name = "是否退关",notes = "")
    private String isRetreat ;

    /** 机械IDs */
    @ApiModelProperty(name = "机械IDs",notes = "")
    private String machineIds ;

    /** 机械种类IDs */
    @ApiModelProperty(name = "机械种类IDs",notes = "")
    private String machineKinds ;

    /** 机械队组IDs */
    @ApiModelProperty(name = "机械队组IDs",notes = "")
    private String machineTeamIds ;

    /** 机械信息 */
    @ApiModelProperty(name = "机械信息",notes = "")
    private String machineInfo ;

    @ApiModelProperty(name = "是否检算",notes = "")
    private String isCheck ;

    @ApiModelProperty(name = "可编辑",notes = "")
    private String isEdit ;

}
